from classe_data_base_livro import *

class Controle:
    def __init__(self, usuario = None):
        self.__usuario = usuario
        self.db_livro = DataBaseLivro()
        
    def GetUsuario(self):
        return self.__usuario
    def SetUsuario(self, usuario):
        self.__usuario = usuario
        
    def SalvarLivro(self, nome, autor, editora, ano, emprestado, cod):
        nome = nome.upper()
        autor = autor.upper()
        editora = editora.upper()
        
        #Se o codigo for vazio, entao sera cadastrado um novo livro 
        if cod == '':
            confirmacao = self.CadastrarLivro(nome, autor, editora, ano)
        
        else:
            cod = int(cod)
            ano = int(ano)
            #procura se o livro do cod dado existe
            livro = self.db_livro.ProcurarLivroCod(cod)
            #Se exister, editar o respectivo livro com as informacoes dadas
            if len(livro) != 0:
                confirmacao = self.EditarLivro(nome, autor, editora, ano, emprestado,cod)
            else:
                confirmacao = False
            
        return confirmacao
    
    def CadastrarLivro(self, nome, autor, editora, ano):
        livro = Livro(nome, autor, editora, ano)
        confirmacao = self.db_livro.CadastrarLivro(livro)
        return confirmacao
    
    def EditarLivro(self, nome, autor, editora, ano, emprestado, cod):
        
        if emprestado == 'SIM':
            emprestado = True
        elif emprestado == 'NAO':
            emprestado = False
            
        livro = Livro(nome, autor, editora, ano, emprestado)
        confirmacao = self.db_livro.EditarLivro(livro, cod)
        return confirmacao
    
    
    def PesquisarLivro(self, info, campo):
        #Transforma o campo dado num campo aceito pelo DataBase do MySQL
        info = str(info.upper())
        prim_letra = campo[0].upper()
        campo = prim_letra.upper() + campo[1:]
        campo = 'Livro'+campo
        
        #Lista de todos os atributos dos livros com a informacao procurada
        #no campo solicitado
        livros = self.db_livro.ProcurarLivros(info, campo)
        
        #Se existir livros com a informacao procurada  o progr roda o IF
        if len(livros) != 0:
            
            #Transforma a variavel 'emprestado' de 0 e 1 para 
            #'SIM' e NAO''
            novos_livros = []
            for i in range (len(livros)):
                
                lista = livros[i]
                lista = list(lista)
                
                if lista[-1] == 0:
                    lista[-1] = 'NAO'
                else:
                    lista[-1] = 'SIM'
                    
                novos_livros.append(lista)

            #retorna a lista de livros modificadas com o emprestimo 
            #como SIM e NAO
            return novos_livros
        else:
            return False
        
        
